'''
用正则表达式，检查一个字符串是否满足要求。

要求：
1，字符串中必须包含至少一个数字。
2，字符串中必须包含至少一个大写字母。
3，字符串中必须包含至少一个小写字母。
4，字符串中必须包含至少一个特殊字符（如 !@#$%^&*()）。
5，字符串的长度必须在 8 到 16 之间。

'''
import re

def check_string(s):
    # 正则表达式模式
    pattern = r'^(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*()])[A-Za-z\d!@#$%^&*()]{8,16}$'
    # 使用match方法检查字符串是否满足要求
    if re.match(pattern, s):
        return True
    else:
        return False


# 测试
print(check_string('Hello123!'))  # True
print(check_string('Hello123!@#$%^&*()'))  # True

